<?php
/**
 * @purpose
 * @Author: MaDou
 * @Time  : 2022/7/27 18:34
 */

namespace App\Models\Trip\OrderBusiness\Repositories\Interfaces;

use App\Models\Plane\PlaneOrders\PlaneOrder;
use App\Models\Train\TrainOrders\TrainOrder;
use App\Models\Trip\OrderBusiness\BusinessOrderSnMap;
use App\Models\Trip\TripOrderRefund\TripOrderRefund;
use Illuminate\Support\Collection;

interface BusinessOrderSnMapRepositoryInterface
{
    public function addOneMap(array $data): BusinessOrderSnMap;

    public function addOneMapByTrainOrder(TrainOrder $order, string $out_order_id): BusinessOrderSnMap;

    public function addOneMapByPlaneOrder(PlaneOrder $order, string $out_order_id): BusinessOrderSnMap;

    public function addOneMapByOrderTicketReturn(TripOrderRefund $refund, string $out_order_id): BusinessOrderSnMap;

    public function findByTradeNo(string $tradeNo): Collection;
}